#ifndef testmod_teste_h
#define testmod_teste_h

#include <stdint.h>
#include "genericv.h"
#include "stub.h"
#include "Endereco.h" //id_Endereco
#include "teste.h" //id_Endereco


typedef struct {
  int64_t ref;
  GenericVar id;
  GenericVar nome;
  GenericVar idade;
  GenericVar id_Endereco;
  Endereco* EnderecoPtr;
  GenericVar altura;
  Teste* teste;
} testmod_teste;



typedef struct {
  testmod_teste* (*create)();
  FieldEntry* (*getFields)();
  int64_t (*get_ref)(testmod_teste *this);
  void (*set_ref)(testmod_teste *this, int64_t novo);
  int64_t (*get_id)(testmod_teste *this);
  void (*set_id)(testmod_teste *this, int64_t novo);
  char* (*get_nome)(testmod_teste *this);
  void (*set_nome)(testmod_teste *this, char* novo);
  int32_t (*get_idade)(testmod_teste *this);
  void (*set_idade)(testmod_teste *this, int32_t novo);
  int64_t (*get_id_Endereco)(testmod_teste *this);
  void (*set_id_Endereco)(testmod_teste *this, int64_t novo);
  Endereco* (*get_Endereco)(testmod_teste *this);
  void (*set_Endereco)(testmod_teste *this, Endereco* novo);
  double (*get_altura)(testmod_teste *this);
  void (*set_altura)(testmod_teste *this, double novo);
  Teste* (*get_teste)(testmod_teste *this);
  void (*set_teste)(testmod_teste *this, Teste* novo);
  int (*teste)(testmod_teste *this,  int a, void *b);
} testmod_testeInterface;

extern testmod_testeInterface testmod_testeI;

#endif
